package com.hc.tenant.service.impl;

import java.util.Collection;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.hc.common.core.constant.CacheConstants;
import com.hc.common.core.utils.DateUtils;
import com.hc.common.redis.service.RedisService;
import com.hc.common.security.service.TokenService;
import com.hc.tenant.domain.MqttMsgSend;
import com.hc.tenant.service.IMqttMsgSendService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hc.tenant.mapper.RobotCommandMapper;
import com.hc.tenant.domain.RobotCommand;
import com.hc.tenant.service.IRobotCommandService;

/**
 * 机器人命令管理Service业务层处理
 *
 * @author yongjainz
 * @date 2021-03-26
 */
@Service
public class RobotCommandServiceImpl implements IRobotCommandService
{
    @Autowired
    private RobotCommandMapper robotCommandMapper;
    @Autowired
    private RedisService redisService;
    @Autowired
    private TokenService tokenService;

    @Autowired
    private IMqttMsgSendService mqttMsgSendService;

    /**
     * 查询机器人命令管理
     *
     * @param commandId 机器人命令管理ID
     * @return 机器人命令管理
     */
    @Override
    public RobotCommand selectRobotCommandById(Integer commandId)
    {
        return robotCommandMapper.selectRobotCommandById(commandId);
    }

    /**
     * 查询机器人命令管理列表
     *
     * @param robotCommand 机器人命令管理
     * @return 机器人命令管理
     */
    @Override
    public List<RobotCommand> selectRobotCommandList(RobotCommand robotCommand)
    {
        return robotCommandMapper.selectRobotCommandList(robotCommand);
    }

    /**
     * 新增机器人命令管理
     *
     * @param robotCommand 机器人命令管理
     * @return 结果
     */
    @Override
    public int insertRobotCommand(RobotCommand robotCommand)
    {
        robotCommand.setCreateTime(DateUtils.getNowDate());
        return robotCommandMapper.insertRobotCommand(robotCommand);
    }

    /**
     * 修改机器人命令管理
     *
     * @param robotCommand 机器人命令管理
     * @return 结果
     */
    @Override
    public int updateRobotCommand(RobotCommand robotCommand)
    {
        robotCommand.setUpdateTime(DateUtils.getNowDate());
        return  robotCommandMapper.updateRobotCommand(robotCommand);
    }

    /**
     * 批量删除机器人命令管理
     *
     * @param commandIds 需要删除的机器人命令管理ID
     * @return 结果
     */
    @Override
    public int deleteRobotCommandByIds(Integer[] commandIds)
    {
        return robotCommandMapper.deleteRobotCommandByIds(commandIds);
    }

    /**
     * 删除机器人命令管理信息
     *
     * @param commandId 机器人命令管理ID
     * @return 结果
     */
    @Override
    public int deleteRobotCommandById(Integer commandId)
    {
        return robotCommandMapper.deleteRobotCommandById(commandId);
    }
}